package request

import "vrcm/src/vrcm/common/dto"

type (
	DynamicEdit struct {
		Id                      int64           `json:"id"`
		DynamicType             string          `json:"dynamicType" comment:"1 域名 2 ip"`
		Domains                 string          `json:"domains"`
		OriginStations          []OriginStation `json:"originStations"`
		Position                string          `json:"position"`
		SchedulePolicy          string          `json:"schedulePolicy"`
		Topo                    string          `json:"topo"`
		IsIcp                   string          `json:"isIcp"`
		ProxyProtocolEnable     string          `json:"proxyProtocolEnable"`
		DisableOriginPortHeader string          `json:"disableOriginPortHeader"`
		Rules                   []DynamicRule   `json:"rules"`
		TenantId                string          `json:"tenantId"`
		VSTenantId              string          `json:"vsTenantId"`
		Account                 string          `json:"account"`
		PackageId               string          `json:"packageId"`
		ExpirationTime          int64           `json:"expirationTime"`
		CreateTime              int64           `json:"createTime"`

		Status       int    `json:"status"`
		Cname        string `json:"cname"`
		InstanceName string `json:"instanceName"`
		InstanceId   string `json:"instanceId"`
	}
	OriginStation struct {
		Address  string `json:"address"`
		IsMaster string `json:"isMaster"`
		CheckUrl string `json:"checkUrl"`
	}
	DynamicRule struct {
		Protocol    string `json:"protocol"`
		DynamicPort string `json:"dynamicPort"`
		OriginPort  string `json:"originPort"`
		OriginId    string `json:"originId"`
		//IsSystem    string `json:"isSystem"`

		RuleId string `json:"ruleId"`
		CnameX string `json:"cname"`
	}

	DynamicGetPort struct {
		Protocol string `json:"protocol"`
		Num      string `json:"num"`
	}

	DynamicCheckPort struct {
		Protocol string `json:"protocol"`
		Ports    string `json:"ports"`
	}

	DynamicDel struct {
		Id      int64  `json:"id"`
		DelType string `json:"delType"`
	}

	DynamicList struct {
		dto.Pagination `search:"-"`
		Status         int64  `json:"status"`
		TenantId       string `json:"tenantId"`
		VSTenantId     string `json:"vsTenantId"`
	}

	DynamicInfo struct {
		Id int64 `json:"id"`
	}

	DynamicStop struct {
		Id     int64 `json:"id"`
		Action int   `json:"action"`
	}

	DynamicUInstName struct {
		Id           int64  `json:"id"`
		InstanceName string `json:"instanceName"`
		TenantId     string `json:"tenantId"`
	}

	DynamicPackageList struct {
		TenantId string `json:"tenantId"`
	}

	DynamicPackageInfo struct {
		Id        int64  `json:"id"`
		PackageId string `json:"packageId"`
		TenantId  string `json:"tenantId"`
	}

	DynamicDomainList struct {
		TenantId       string `json:"tenantId"`
		PackageId      string `json:"packageId"`
		Domain         string `json:"domain"`
		InstanceId     string `json:"instanceId"`
		dto.Pagination `search:"-"`
	}

	DynamicDealRecord struct {
		PackageId      string `json:"packageId"`
		Action         string `json:"action"`
		IsIcp          string `json:"isIcp"`
		TenantId       string `json:"tenantId"`
		VSTenantId     string `json:"vsTenantId"`
		ExpirationTime int64  `json:"expirationTime"`
	}

	SpecialTenantList struct {
		TenantId     string `json:"tenantId"`
		VSTenantId   string `json:"vsTenantId"`
		ProtocolType string `json:"protocol"`
		InstanceId   string `json:"instanceId"`
	}
)
